home *** CD-ROM | disk | FTP | other *** search
- Version 1.0 -- Dec 91. Original source created.
-
- Version 2.0 -- Dec 91. Added man pages. Server bug fix. In 1.0, files
- in a directory that is protected from deletion can still
- be written over. In 2.0, it is prohibited as well.
-
- Version 2.1 -- Jan 1, 92.
-
- 1) The maximum length of a name in pre-2.1 server is
- both limited by the 1k-byte udp packet size and, in
- some cases more severely, by the OS it is running in.
- On some systems, the OS imposes a limite of 14 chars.
- For those systems, the server can now be made to hash
- long names into short ones. The effect is transparent
- to the clients except when two long names gets hashed
- into the same value. In that case, they will refer
- to the same file during downloading, and they will
- displace each others during uploading.
-
- 2) Since directories, unlike files, have undisputable
- ownership, removal of a directory owned by a client
- should depends only on the ownership of the directory
- itself, and not on that of its parent directory. In
- pre-2.1 server, the client must have delete permission
- to the parent directory before it is allowed to delete
- the subdirectory. In 2.1, the permission is not needed.
-
- Version 2.2 -- Feb 15, 92.
-
- 1) The fput and fgetcmd utilities will now accept a list of
- files from its standward input. See their man pages for
- this expanded usage. This is useful if you don't want
- file names to show on 'ps' output.
-
- 2) The retransmit timer for client code has been changed
- to use an adaptive algorithm. In pre-2.2 versions of
- FSP, clients will retransmit if it has not received a
- response from the server after a delay of 3 seconds.
- In version-2.2, two separate delays are used. The
- "busy" delay is used when waiting for a reply for the
- first try and the second try. Any time a second try
- is necessary, the delay is increased by 50%. Every
- first try brings the delay 12.5% closer to the initial
- delay setting (3 seconds by default, settable by the
- FSP_DELAY variable). For the third try and beyond,
- the "idle" delay is used. For each try, the delay is
- doubled.
-
- 3) Makes available FSP request code space 0x80 - 0xff for
- future user extensions. Each such extension will begin
- with a code byte in that range, and followed by a control
- block, which is likely to be different from the existing
- one. The basic operations of FSP will not require the
- use of such extensions.
-
- Note: 2.2 does not involve changes to the server itself.
- The server is been checked out and added to by a
- few people on the net. I will wait until the
- modifications stabilize before I consolidate them.
-
- Version 2.3 -- Mar 9, 92
-
- 1) The bsd_src/glob.c file has a bug in blkfree function
- in that it tries to free something that is actually
- on the stack of the glob function. The last call to
- free has been commented out to fix the bug.
-
- 2) The fspd has a bug whoes only visible manifestation
- is the that protection can't be changed. The fix has
- required a moderate amount of code change in fspd.
-
- 3) .FSP_NO_DEL and .FSP_NO_ADD mechanism has been replaced
- by .FSP_OK_DEL and .FSP_OK_ADD mechanism. Thus by
- default, a directory is no delete and no add.
-
- 4) fprocmd is modified to relax option checking, allowing
- arbitrary option characters be passed to the fsp server.
-
- 5) A fls bug is fixed so that a "fls /" in a directory other
- than the root directory will not cause an error.
-
- 6) A -DDIRENT switch is added in Makefile to help support
- those machines that does not have /usr/include/dirent.h.
-
- Version 2.3a -- March 20, 1992
-
- 1) In a few places, non-critical errors of the form:
- if(errno = EINTR) ....
- was made. It obviously should have been == instead.
- The problem is fixed.
-
- 2) In the previous versions there is a potential problem
- such that if the first reply packet is dropped or is
- messed up, making a retransmit necessary, fspd will
- make the client utility wait for a 1 minute timeout.
- A potential loop hole for this happening has been
- closed by modifying server_lib.c where the packet key
- is checked.
-
- Version 2.4 -- March 27, 1992
-
- 1) fgrab/fgrabcmd client utility is added. It is like
- fget except it also deletes the named files in such a
- way that if there are multiple fgrabs for the same
- file, only one will succeed. One bug/mis-feature of
- fgrab is that when fgrab is terminated abnormally, the
- file is not restored. This command is useful for things
- like sharing bone files for modified versions of nethack.
-
- 2) FSP now allows multiple client programs to run at the
- same time if one of the three multiplexing mechanisms
- are chosen during compile time. It is likely that at
- least one of them will work for your system. The
- multiplexing is done at the client side, and does not
- allow the client machine to issue request messages at
- a higher rate compared to the previous versions. The
- FSP_LOCALPORT variable is no longer needed. However,
- if used, it will force serialization of client programs,
- which might be desireable if none of the multiplexing
- mechanisms are suitable for your machine. In order to
- accommodate this change, the server code has been
- changed to store temporary upload files with a different
- name from the previous version. The names now have to
- identify sender's port as well as sender's internet id.
- Change is necessary to keep it under 14-character limit
- of some OS.
-
- 3) Progress report mechanism enabled by FSP_TRACE variable
- now try to update the kbyte display more promptly.
-
- 4) fcat/fcatcmd will now turn off FSP_TRACE during its
- file transfer if its stdout is a tty.
-
- Version 2.5 -- April 8, 1992
-
- 1) A bug introduced during the last release --- fspd will
- not timeout and exit when running under inetd mode.
- This bug is now fixed. It was introduced because it
- is more convienent at one time for it not to exit when
- it is still being debugged. The patch to stop it from
- exiting was not removed before release time.
-
- 2) A very rarely seen bug in some OS is circumvented. UDP
- packet's headers contain a checksum field. If the
- checksum option is disabled, the OS will set the
- checksum field to 0 before sending, and will not check
- the checksum field when message is received. If the
- option is enabled, the OS will stuff the checksum into
- the checksum field. When a packet is received, the
- checksum field is checked. If the checksum field is 0,
- then the OS assume that the sender does not have option
- enabled, and therefore the checking is skipped.
-
- Problem arises when a packet's computed checksum is
- zero. Some OS will stuff 0xffff into the checksum
- field before sending such a message to distinguish it
- from the case for which checksum is disabled. Other
- OS couldn't recognize 0xffff as an indication that the
- actual checksum could be either 0 or 0xffff, and
- subsequently reject the message. The client can thus
- get stuck forever in retransmitting a request that
- happens to have 0 for the computed checksum, but
- 0xffff for the checksum field.
-
- To get around the problem, the sequence number field
- of the request message (which has meaning only to the
- client software), is partitioned such that 2 of the
- bits reflect the retry sequence, and the remaining 14
- bits reflect the request sequence. This will ensure
- that if one request got ignored because it happens to
- have a checksum of 0, the next retry will result in
- a packet that does not have a checksum of 0. The only
- file affected here is client_lib.c.
-
- 3) In response to those who have severely limited UDP
- packet sizes, the environment variable FSP_BUF_SIZE
- is supplied to set the data size of file and directory
- information transfers. The default is 1024. You cannot
- set it to be bigger than 1024, but you can set it to
- be smaller if you find that your system cannot pass
- UDP packets that includes 1024 bytes of data. This
- requires changes both in the server and the client
- code. The first parameter field of get-file and
- get-directory requests contains the path of the file
- or directory. The second parameter field was unused,
- but it is now used to hold the number of bytes to read.
- This change is backward compatible in the sense that
- if the second field is empty (old client code), the
- new server code will default to 1024. Changes to the
- client code is confined to client_util.c.
-
- Version 2.6 -- July 6, 1992
-
- 1) client_lock.c is fixed so that perror is always
- followed by exit. Previously, if System-V shared
- memory mechanism is chosen for locking control in
- the Makefile, but the mechansim has not in fact
- been configured into the UNIX kernel, the client
- utilities would die of a segmentation fault error.
- The error message will now be more reasonable.
-
- 2) mechanism is added so FSP server can put directory
- cache files in a special directory other than the one
- for which the files are intended. Previously a
- .FSP_CONTENT file is created in each directory the
- fspd process controls. Through variables in the
- Makefile, provider of fsp service can now elect to put
- cache files together in one single directory, and put
- a cap on the total number of such files that can exist
- simultaneously. The fsp server will create a cache
- file in the cache directory when it couldn't find one
- already exist in the directory being listed by the
- client. Changed are minor and invovles the routines
- server_get_dir, server_get_dir_2 [new] in "server_file.c";
- the variable declaration section of "server_main.c", and
- Makefile.
-
- 3) a line in util_cd is changed, and a line in get_dir_blk
- is added in the file "client_util.c" to prevent fls from
- sending some spurious requests to the fsp server.
-
- 4) Makefile is changed to allow the option of combining all
- client utilities into one actual binary files. This is
- necessary for space saving reasons on some versions of
- UNIX. The various small main C files for the utilities
- had to be changed as well to accomodate this change.
-
- 5) fver now will take an optional argument. If none is
- supplied, it prints the version string of the server.
- If one is supplied, it prints the versioin string of
- the client FSP software.
-
- Version 2.6.1 -- Aug 31, 1992
-
- 1) Small changes to Makefile. In 2.6, "make" will fail if
- you needed to define LIB, or if your command shell is not
- /bin/sh, and you want to merge client utilities. Version
- 2.6.1 fixed them. Only Makefile is changed, everything
- else is identical to 2.6.
-
- Version 2.6.2 -- Sep 2, 1992
-
- 1) bsd_src/cmp.c was changed so that flscmd can sort its
- output by date correctly on all systems. This particular
- version of the BSD source made assumptions about what
- the comparison functions should return for the qsort
- routine, but those assumptions were not true for all
- systems.
-
- Version 2.6.3 -- Sep 19, 1992
-
- 1) client_lock.c is modified to fix a compilation phase
- bug that occur when NOLOCKING option is used in the
- Makefile. This affects only the client code.
-
- 2) server_file.c is modified so that upload uses the
- directory cache directory instead of the top directory.
- This is needed for those sites that want the top
- directory be write protected. (good for ftp sites).
-
- Version 2.6.4 -- Dec 12, 1992.
-
- 1) Make main makefile pass CC and CFLAGS definitions to
- bsd_src's Makefile
-
- 2) Add util_cd2 to client_util and make bsd_src/ls.c use
- it. This remove some of the spurious GET_DIR requests.
- Also, there is a bug in client_util's util_cd routine
- in that it always requests 1K worth of directory info
- no matter what FSP_BUF_SIZE setting is used. Causeing
- fsp clients to hang under situations where FSP_BUF_SIZE
- is limited by the network (slip, usually).
-
- 3) function server_interrupt in server_lib.c was defined
- to be of type void to avoid complaint from some compilers.
- There are several other minor fixes in functin variable
- declarations in several files for the same reason.
-
- 3.5) The retry delay function for the client is tweaked
- somewhat.
-
- Wed Dec 16 12:31:29 PST 1992
-
- 4) A change in the server_up_load function in the file
- server_file.c is made to fix a subtle bug. When a
- file is uploaded, the offset to begin write was not
- used to seek to end of file. Instead, the file is
- only appended to. This cause error if two retry
- messages in an upload was divided by a server going
- down. The new server is fixed so that seek based
- on the pos parameter is done. This eliminates the
- possibility of such an error.
-
- Version 2.6.5jt -- Dec 17, 1992
-
- 1) Added support for .FSP_OK_READ and .FSP_OK_MKDIR.
- .FSP_OK_READ allows reading the contents of files.
- .FSP_OK_MKDIR allows creation of subdirectories.
- .FSP_OK_ADD no longer means anything for creation of
- subdirectories, only for creation of files.
-
- Version 2.6.5jt.1 -- Dec 18, 1992
- 1) Changed the direction of intent on the .FSP_OK_READ
- file and renamed it to .FSP_PRIVATE. Now prescense
- of file means directory is private. Done so that
- spurious files didn't need to be created everywhere
- just to grant read access. In concordance with this,
- the procmd is no {+-}p instead of {+-}r.
-
- Version 2.6.5jt.2 -- Dec 29, 1992
- 1) Fixed a core dump in any of the programs that used
- file globbing. If you passed a ~ to the command
- in this state, you would seg violate. Fixed by
- removing the parsing of ~ in the glob.c file.
- It now errors with an 'illegal character in path'.
-
- Version 2.6.5jt.3 -- Jan 27, 1993
- 1) Added in the Enhanced Trace (cps) from pi@cs.sun.ac.za
- 2) Added protection from clobbering files on fget/fgrab
- courtesy of A.E.J.Fellows (A.E.J.Fellows@bham.ac.uk)
- 3) Various updates and corrections to the man pages.
- 4) Merged in VMS changes. .com files and VMS makefiles
- as well as VMS changes files all exist in ./vms.
- VMS specific sourcefiles are in ./vms_src and VMS
- specific header files are in ./vms_h. VMS changes
- done by S.A.Pechler@bdk.tue.nl. All changes made
- by Sven are in ./vms/VMS.ChangeLog. Some of the
- changes he made there are incorporated into the
- unix version as well.
-
- Version 2.6.5jt.4 -- Feb 2, 1993
- 1) Made the initial check for logfile opening be done
- with mode "a" instead of mode "w+" so that it didn't
- erase the file every time through.
- 2) Reordered the includes in common_def.h so that they
- preserved the original 2.6.5 ordering which some machine
- types seemed dependant on.
- 3) Added in Sven's repatches to make VMS compilation work.
-
- Version 2.6.5jt.5 -- Feb 4, 1993
- 1) Added extended version information and loggin information
- to the reply from the fver command.
- 2) Changed the message type on fver replies to CC_VERSION
- instead of CC_ERR. This just makes more sense.
- 3) One more special case where SCO unix seems to require
- a certain order in it's include files.. sheesh.
- 4) Changed duplicate variable clobbertype in both fgetcmd.c
- and fgrabcmd.c to be unique. Moved the #defines of
- the clobbertypes into the appropriate .h file
- 5) Added a few more small fixes from Sven.
- 6) Added support for restricted mode. When server is run
- in restricted mode ONLY users from sites appearing in
- the .ROGUE_HOSTS file can connect. This flag basically
- reverses the meaning of the .ROGUE_HOSTS file, but by
- doing so provides a cheap way of doing priveledged connect.
-
- Version 2.6.5jt.6 -- Feb 8, 1993
- 1) Added a contrib directory for user submitted programs such
- as my admin scripts. Currently thats the only thing here
- but I'm sure other things will wind up here in time.
- 2) Removed the redirecting of stdin/stdout/stderr to /dev/null
- under normal operation because it was causing some true
- error conditions (like it telling you that homedir didn't
- begin with a / to get dumped into the bit bucket.)
- 3) Fixed a logic error in the priveledged site code. sheesh.
- NOTE: To a disallowed client, it will appear as if the
- server doesn't exist. This is as far as I can tell the
- behavior intended by Wen.
- 4) Modified makefile to not use any file names longer than
- 14 characters (POSIX compliant). This only affected the
- merge programs.
-
- Version 2.6.5jt.7 -- Feb 9, 1993
- 1) Fixed some of the POSIX compliant naming that I missed the
- first time around.
- 2) Added Ruben Olsons admin tools and fsp-shell to the contrib
- distribution.
- 3) Fixed a small bug in switch parsing in fspd. (if you did
- fspd -l -r it would think that -r was the filename to log
- into. this is wrong).
- 4) Added a small patch suggested by Ruben Olson. Now, if the
- Remote FSP server doesn't respond (and you're not in the
- middle of a file transfer) the client will just exit instead
- of hanging indefinately. It takes about 3-5 seconds for
- the client to exit. Basically, if pos is zero (as it is
- unless you are transferring), then when the client would
- first print an 'I', it will instead now exit. (enable this
- by compiling with -DCLIENT_TIMEOUT)
-
- Version 2.6.6 -- Mar 10, 1993
- 1) Added some patches supplied by Sven Pechlar to fix a few
- last niggling bugs with the VMS port.
- 2) File sizes are now logged as part of GET_FILE (courtesy
- of Sven). This might make the Sumalog script useless until
- fixed.
- 3) Added an append mode to fgetcmd and fgrabcmd. Under this
- mode, fget/fgrab will try to append data to the end of a
- short file. This patch was submitted by robert@diku.dk
- (Robert Martin-Legene)
- 4) Extended the timeout time on CLIENT_TIMEOUT as requested.
- 5) Added code supplied by Sven Pechlar to do password protect
- on private directories, and to do internal file cacheing.
- The password protect code looks extremely broken to me.
- But I added it anyway as if no passwds are set, it
- shouldn't break anything.
- 6) Signal handling code (for BSD only) to handle cleaning up
- .fsptemp.XXXX files on abort (courtesy of AEJFellows)
- 7) Move setuid call before log file is opened. (AEJFellows)
- 8) Added throughput control courtesy of Laurent Montaron
- (montaron@eurecom.fr). See INFO file for details.
-
- Version 2.6.6.1 -- Mar 11, 1993
- 1) Reduced the client timeout from 5 to 4.
- 2) Made client timeout code default in the makefile.
- 3) Made printing of 'E' on retrys conditional on
- trace being true.
- 4) Shortened temp file names so that they will always
- fit under 14 character limit.
- 5) Yet more small fixes from Sven to make 2.6.6 compile on
- VMS cleanly. (thanks Sven)
- 6) .README file support thanks to Pihl
- (phil.richards@prg.oxford.ac.uk)
- 7) More advanced Hostname security thanks to Phil as well.
- (Look in the INFO file for details)
- 8) Rewrote logging to use varargs based on ideas from Phil.
- 9) If no password is supplied, and the .OWN.XXXXXXXX file is
- empty, then you will still be able to read the directory.
- This reinstitutes backward compatability in the server with
- older clients that cannot send passwords.
- 10) Changes to support a local working directory for all remote
- operations courtesy of Michael Meskes
- <meskes@ulysses.informatik.rwth-aachen.de>
-
- Version 2.6.6.2 -- Apr 8, 1993
- 1) Added patches to make the client_timeout value be settable
- via an environment value. Default timeout value is 4. The
- change has no effect unless you compile the clients to time
- out if there is no response. (patches by Michael Meskes)
- 2) Added fducmd and fsethostcmd written by Michael Meskes.
- fducmd is a standalone (or merge) version of the du cmd
- that phil put into his fspclient. Fsethostcmd supports
- a fairly simple resource file for setting up hosts and
- local directories and all environment variables based on
- information in a file.
- 3) Fixed a bug in fgrab that caused you to not be able to
- grab a file even though you could get it and then rm it.
- 4) Fixed the IPHOST code. It was returning automatic vars
- up the stack, and assuming that assigning a structure
- to a structure performed copy. This is not always the
- case, and when compiled under ultrix cc this assumption
- broke. The fix was to malloc the structures down and
- pass pointers up the stack initially, and then store
- those pointers. The code has been tested now as well,
- and verified to work on at least my system.
- 5) The server will now log an 'Unknown command.' error
- if it gets a command request that it doesn't know how
- to handle, and will return this string to the requesting
- client. (requested by Robert Martin-Legene)
- 6) Fixed a bug in build_dir() reported by Phil Richards.
- A file could get a garbaged 'long_name'.
- 7) Added better logging code supplied by Phil Richards.
- 8) Added reverse hostname lookup and read only mods supplied
- by Phil Richards.
- 9) Removed a bug that caused logging to be turned on even when
- the -l option wasn't specified.
- 10) Changed the name of the fsethostcmd to fhostcmd so that
- POSIX machine nameing conventions were followed.
- 11) Renamed the .fsprc file used by fhostcmd to .fsp_prof
-
- Version 2.6.6.3 -- Apr 12, 1993
- 1) Added bitfields containing the version and protection
- information into the getpro and fver commands. Newer
- clients should rely on that information and thus be able
- to present it in any display format desired.
- 2) Logging code will now stat the logfile and if it's no
- longer there, it will recreate it after closing the old
- fd. This saves the system expense of opening and closing
- a logfile each time we log something, and still allows the
- deletion of logfiles during a run.
- 3) Modified clients to present information from the bitfields
- for ver and pro, and modified the server to give only
- minimal textual information for ver and pro.
- 4) Added a sanity check to FSP_DELAY variable to never let
- it go below some specified minimum value. This minimum
- value is set in common_def.h and defaults to 500 usec.
- 500 usec should remove the problem of the infinite resend
- client.
- 5) Fixed a small bug in logging where it would add one newline
- for every 1k uploaded to the logfile.
-
- Version 2.6.6.4 -- Apr 13, 1993
- 1) Fixed yet another small bug with readme files that I'd
- created.
- 2) Encased all printing of strings recieved from a remote
- site inside some sanity to prevent them sending a %s or
- something as part of a string and having it choke.
- 3) A core dump in the logging code where there was a case
- under which it did not return after an error is fixed.
-
- Version 2.6.6.5 -- Apr 19, 1993
- 1) Fixed a bug in the .IPHOST code. (Thanks Laurent and Phil)
- 2) Fixed a few typos and compile problems with the merged
- client. (Thanks to the numerous people who reported it)
- 3) Changed the code for fducmd slightly (Thanks Michael Meskes) (NOTE: Michael has also written an ffindcmd that will be in
- the next release, it's not included here)
-
- Version 2.7.0 -- May 3, 1993
- 1) reorganized source code completely.
- 2) Installed the source code under Gnu autoconf
- 3) Added ffind client submitted by Michael Meskes.
- 4) Rewrote portions of the documentation.
- 5) Moved all configuration out of the Makefile and
- into header files and an fspd.conf file
- 6) Added -r recursive option to fgetcmd and fcatcmd
- (thanks to Michael Meskes). Read man pages for details.
-
- Version 2.7.1 -- May 7, 1993
- 1) Ironed out portability problems.
- 2) Fixed the pointer to in cast in server/filecache.c (thanks
- to wen-king)
- 3) Added WenKing's patches for the Dec Alpha
- 4) Merged in Sven's patches for fixing 2.7.0 on a VMS system.
- 5) Added aclocal.m4 with some macros to start cleaning up the
- configure.in file a bit. Some macros needed changing to
- get the configure script to configure properly on a linux.
- 6) Fixed a bug in server_upload where a file could not be
- uploaded unless the server had a valid cache dir set.
- Thus, any sites that didn't use cache dirs couldn't have
- files uploaded.
-
- Version 2.7.1 AMIGA -- March 25, 1994
- 1) Started with (re-)configuring the tweak.h file to suit SAS/C 6.2
- 2) Disabled various not-amiga-supported functions. (fork, setuid)
- 3) Added needed include-files.
-
- March 29, 1994
- 4) Rewrote signal handlers. (^C breaks program, ^F dumps .HTAB)
- 5) Fixed up server/build_dir_file to deal with amiga pecularities.
- 6) server/checkpath now returns a (more) valid amiga-path. To make
- this fool-proof will need more reworking.
- 7) Inetd-mode supported. Doesn't time-out though
-
- March 30, 1994
- 8) Programs sets it's name correctly when running in inetd-mode.
- (when inetd doesn't)
- 9) Checkpath now disallows client-requested paths with ':' in them.
-
- May 15, 1994
- 9) Timeout under inetd works.
-
- May 20, 1994
- 10) Get a usable version together, and upload it to aminet. :)
-
- Near future
- -- Grabfile doesn't seem to work, could be the clients fault.
- -- Get round the softlink problem.
- -- Handle homedir ending in ':' correctly. (or did I do that already?)
-
-
- What needs to be done EVENTUALLY
-
- Somebody should make a tar equivalent that read and write remote fsp
- archives. This will allow transfer of whole directory in one command.
-
- Sources should be make to pass lint with as little problem as possible.
-